Deterministic Consistency: A Programming Model for Shared Memory Parallelism
نویسندگان
چکیده
The difficulty of developing reliable parallel software is generating interest in deterministic environments, where a given program and input can yield only one possible result. Languages or type systems can enforce determinism in new code, and runtime systems can impose synthetic schedules on legacy parallel code. To parallelize existing serial code, however, we would like a programming model that is naturally deterministic without language restrictions or artificial scheduling. We propose deterministic consistency, a parallel programming model as easy to understand as the “parallel assignment” construct in sequential languages such as Perl and JavaScript, where concurrent threads always read their inputs before writing shared outputs. DC supports common dataand task-parallel synchronization abstractions such as fork/join and barriers, as well as non-hierarchical structures such as producer/consumer pipelines and futures. A preliminary prototype suggests that softwareonly implementations of DC can run applications written for popular parallel environments such as OpenMP with low (< 10%) overhead for some applications.
منابع مشابه
Workspace Consistency: A Programming Model for Shared Memory Parallelism
Recent interest in deterministic parallelism has yielded new deterministic programming languages, which offer promising features but require rewriting existing code, and deterministic schedulers, which emulate existing thread APIs but do not eliminate races from the basic programming model. Workspace consistency (WC) is a new synchronization and memory consistency model that offers a “naturally...
متن کاملNestStep: Nested Parallelism and Virtual Shared Memory for the BSP model
NestStep is a parallel programming language for the BSP (bulk–synchronous–parallel) model of parallel computation. Extending the classical BSP model, NestStep supports dynamically nested parallelism by nesting of supersteps and a hierarchical processor group concept. Furthermore, NestStep adds a virtual shared memory realization in software, where memory consistency is relaxed to superstep boun...
متن کاملHiding the Java Memory Model with Compilers
The Java memory model is very diÆcult for programmers to understand, and there are several ways of interpreting the memory model. In addition, like most programming languages that follow the shared memory parallel programming model, non-deterministic behaviors due to data races can also occur in Java concurrent programs. Data races and synchronization make it impossible to apply classical compi...
متن کاملCOMP 322: Fundamentals of Parallel Programming Module 1: Deterministic Shared-Memory Parallelism
1 Task-level Parallelism 6 1.1 Task Creation and Termination (Async, Finish) . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Computation Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3 Ideal Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4 Multiprocessor Scheduling . . . . . . . . . ...
متن کاملEvaluating Sequential Consistency in a Virtually Shared Memory System by Deterministic and Stochastic Petri Nets
This paper introduces a modeling approach for evaluating the performance of consistency models for Virtually Shared Memory systems. The proposed approach employs Deterministic and Stochastic Petri Nets (DSPNs) which provide a unified modeling tool for both qualitative and quantitative analysis. A DSPN of a sequential consistency model is presented which is employed for a quantitative performanc...
متن کامل